diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index 281a3b8..a2469d0 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -191,8 +191,7 @@
 	 * Optimize Database
 	 *
 	 * @access	public
-	 * @param	string	the table name
-	 * @return	bool
+	 * @return	array
 	 */
 	function optimize_database()
 	{
@@ -207,6 +206,8 @@
 			}
 			
 			$query = $this->db->query($sql);
+			
+			// Build the result array...
 			$res = current($query->result_array());
 			$key = str_replace($this->db->database.'.', '', current($res));
 			$keys = array_keys($res);
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index 9ba4a79..a81936c 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -12,7 +12,7 @@
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Controller.php b/system/libraries/Controller.php
index 23c050e..56b4d6f 100644
--- a/system/libraries/Controller.php
+++ b/system/libraries/Controller.php
@@ -468,10 +468,22 @@
 	 */
 	function _ci_init_dbextra($class)
 	{
-		$map = array('dbutil' => 'DB_utility', 'dbexport' => 'DB_export');
-		require_once(BASEPATH.'database/'.$map[$class].EXT);
-		
-		$this->init_class('CI_'.$map[$class], $class);
+		if ( ! $this->_ci_is_loaded('db'))
+		{
+			$this->_init_database();
+		}
+			
+		if ($class == 'dbutil')
+		{
+			require_once(BASEPATH.'database/DB_utility'.EXT);
+			require_once(BASEPATH.'database/drivers/'.$this->db->dbdriver.'/'.$this->db->dbdriver.'_utility'.EXT);
+			$this->init_class('CI_DB_'.$this->db->dbdriver.'_utility', 'dbutil');
+		}
+		elseif ($class == 'dbexport')
+		{
+			require_once(BASEPATH.'database/DB_export'.EXT);
+			$this->init_class('CI_DB_export', 'dbexport');
+		}
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php
index a95764a..f414373 100644
--- a/system/libraries/Xmlrpcs.php
+++ b/system/libraries/Xmlrpcs.php
@@ -18,13 +18,15 @@
     show_error('Your PHP installation does not support XML');
 }
 
+if ( ! class_exists('CI_Xmlrpc'))
+{
+    show_error('You must load the Xmlrpc class before loading the Xmlrpcs class in order to create a server.');
+}
 
 // INITIALIZE THE CLASS ---------------------------------------------------
 
-require_once(BASEPATH.'libraries/Xmlrpc'.EXT);		
-
-// The initialization code is at the bottom of this file.  It seems to
-// cause an error to have it at the top
+$obj =& get_instance();
+$obj->init_class('CI_Xmlrpcs');
 
 // ------------------------------------------------------------------------
 
@@ -503,14 +505,4 @@
 }
 // END XML_RPC_Server class
 
-
-// INITIALIZE THE CLASS ---------------------------------------------------
-
-$obj =& get_instance();
-$obj->init_class('CI_Xmlrpc');
-$obj->init_class('CI_Xmlrpcs');
-
-// ------------------------------------------------------------------------
-
-
 ?>
\ No newline at end of file
diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html
index aa2ed3d..775c3f2 100644
--- a/user_guide/database/utilities.html
+++ b/user_guide/database/utilities.html
@@ -176,6 +176,20 @@
 
 
 
+<h2>$this->dbutil->optimize_database();</h2>
+
+<p>Permits you to optimize the database your DB class is currently connected to. Returns an array containing the returned status messages or FALSE on failure.</p>
+
+<code>
+$result = $this->dbutil->optimize_databas();<br />
+<br />
+if ($result !== FALSE)<br />
+{<br />
+&nbsp;&nbsp;&nbsp; print_r($result);<br />
+}
+</code>
+
+<p><strong>Note:</strong> Not all database platforms support table optimization.</p>
 
 
 
@@ -190,7 +204,7 @@
 &nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 <a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 <a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
-Next Topic:&nbsp;&nbsp;<a href="../libraries/email.html">Email Class</a>
+Next Topic:&nbsp;&nbsp;<a href="export.html">Database Export Class</a>
 <p>
 <p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
 </div>
diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html
index 1417b4a..96a52a1 100644
--- a/user_guide/libraries/xmlrpc.html
+++ b/user_guide/libraries/xmlrpc.html
@@ -93,9 +93,14 @@
 <p>Once loaded, the xml-rpc library object will be available using: <dfn>$this->xmlrpc</dfn></p>
 
 <p>To load the XML-RPC Server class you will use:
-<code>$this->load->library('xmlrpcs');</code>
+<code>
+$this->load->library('xmlrpc');<br />
+$this->load->library('xmlrpcs');
+</code>
 <p>Once loaded, the xml-rpcs library object will be available using: <dfn>$this->xmlrpcs</dfn></p>
 
+<p class="important"><strong>Note:</strong>&nbsp; When using the XML-RPC Sever class you must load BOTH the XML-RPC class and the XML-RPC Server class.</p>
+
 
 
 <h2>Sending XML-RPC Requests</h2>
@@ -177,7 +182,9 @@
 
 <p>Here is an example to illustrate:</p>
 
-<code>$this->load->library('xmlrpcs');<br />
+<code>
+$this->load->library('xmlrpcs');<br />
+$this->load->library('xmlrpcs');<br />
 <br />
 $config['functions']['<var>new_post</var>'];&nbsp;&nbsp;= array('function' => '<dfn>My_blog.new_entry</dfn>');<br />
 $config['functions']['<var>update_post</var>'] = array('function' => '<dfn>My_blog.update_entry</dfn>');<br />
@@ -359,6 +366,8 @@
 
 	function index()
 	{
+	
+		$this->load->library('xmlrpc');
 		$this->load->library('xmlrpcs');
 		
 		$config['functions']['Greetings'] = array('function' => 'Xmlrpc_server.process');
